#ifndef __BUOLA_GUI_CEMBLEMICON_H__
#define __BUOLA_GUI_CEMBLEMICON_H__

#include <buola/gui/ciconbase.h>

namespace buola { namespace gui {

///\addtogroup gui
///@{

/////////////////////////////////////////////////////////////////////////////

/// icon with emblems

/// This specialization of CIconBase allows to draw icons with emblems on
/// them
///
/////////////////////////////////////////////////////////////////////////////

class CEmblemIcon : public CIconBase
{
protected:
//! \name constructor and destructor
//@{
    CEmblemIcon();
    virtual ~CEmblemIcon();
//@}

    //! initialize the icon
    bool Init(PIcon,const std::vector<std::string>&);

public:
    virtual bool Draw(img::CGC*,const CPoint_d&,int,EStyle=NORMAL);
    virtual img::CPicture GetPixmap(int,EStyle=NORMAL);

public:
    //! gets a new emblem icon
    static PIcon Get(PIcon,const std::vector<std::string>&);

protected:
    PIcon mIcon;
    std::vector<PIcon> mEmblems;
    std::vector<std::string> mList;

    static std::vector<CEmblemIcon*> mEmblemIcons;
};

///@}

/*namespace gui*/ } /*namespace buola*/ }

#endif
